home *** CD-ROM | disk | FTP | other *** search
/ Internet Surfer: Getting Started / Internet Surfer - Getting Started (Wayzata Technology)(7231)(1995).bin / pc / mac / bonus / peter_le / talk_sou / my_libra / myteutil.s < prev    next >
Text File  |  1992-04-20  |  2KB  |  77 lines

  1. unit MyTEUtils;
  2.  
  3. { This program was written by Peter N Lewis, Mar 1992 in THINK Pascal 4.0.1 }
  4.  
  5. interface
  6.  
  7.     function TEEditMenuEnabled (te: TEHandle; static: boolean; maxsize: longInt): boolean;
  8.     procedure TESetEditMenuItem (te: TEHandle; static: boolean; maxsize: longInt; item: integer);
  9.     function TEDoEditMenu (te: TEHandle; static: boolean; maxsize: longInt; item: integer): boolean;
  10.  
  11. implementation
  12.  
  13.     uses
  14.         MyTypes, BaseGlobals, MyUtils;
  15.  
  16.     function TEEditMenuEnabled (te: TEHandle; static: boolean; maxsize: longInt): boolean;
  17.         var
  18.             i: integer;
  19.     begin
  20.         for i := EMundo to EMselectall do
  21.             TESetEditMenuItem(te, static, maxsize, i);
  22.         TEEditMenuEnabled := GetMHandle(M_Edit)^^.enableFlags <> 0;
  23.     end;
  24.  
  25.     procedure TESetEditMenuItem (te: TEHandle; static: boolean; maxsize: longInt; item: integer);
  26.         var
  27.             offset: longInt;
  28.     begin
  29.         case item of
  30.             EMundo: 
  31.                 SetIDItemEnable(M_Edit, item, false);
  32.             EMcut, EMclear: 
  33.                 SetIDItemEnable(M_Edit, item, not static & (te^^.selStart < te^^.selEnd));  { Can cut,clear if there is a selection }
  34.             EMcopy: 
  35.                 SetIDItemEnable(M_Edit, item, te^^.selStart < te^^.selEnd);  { Can copy iff there is a selection }
  36.             EMpaste: 
  37.                 SetIDItemEnable(M_Edit, item, not static & (GetScrap(nil, 'TEXT', offset) > 0) & (TEGetScrapLen + (te^^.teLength - (te^^.selEnd - te^^.selStart)) < maxsize));
  38.             EMselectall: 
  39.                 SetIDItemEnable(M_Edit, item, te^^.teLength > 0);  { Can select all iff there is something to select }
  40.             otherwise
  41.         end;
  42.     end;
  43.  
  44.     function TEDoEditMenu (te: TEHandle; static: boolean; maxsize: longInt; item: integer): boolean;
  45.         var
  46.             loe, oe: OSErr;
  47.     begin
  48.         TEDoEditMenu := true;
  49.         case item of
  50.             EMcopy:  begin
  51.                 TECopy(te);
  52.                 loe := ZeroScrap;
  53.                 oe := TEToScrap;
  54.                 TEDoEditMenu := false;
  55.             end;
  56.             EMselectall:  begin
  57.                 SetPort(FrontWindow);
  58.                 TESetSelect(0, maxLongInt, te);
  59.                 TEDoEditMenu := false;
  60.             end;
  61.             EMcut:  begin
  62.                 TECut(te);
  63.                 loe := ZeroScrap;
  64.                 oe := TEToScrap;
  65.             end;
  66.             EMclear:  begin
  67.                 TEDelete(te);
  68.             end;
  69.             EMpaste:  begin
  70.                 oe := TEFromScrap;
  71.                 TEPaste(te);
  72.             end;
  73.             otherwise
  74.         end;
  75.     end;
  76.  
  77. end.